8×8 LED matrix on an Arduino
I picked a SZ410788K 8×8 LED matrix out of my junk bin today and decided to play around with it. It cost me about 1USD in Aitendo, Akihabara. A little googling brought up the following:
I decided to hook it up to an Arduino (yea I know, I know).
(more to follow)
Here’s some quick code that scans the matrix:
void setup() {
// set the digital pin as output:
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(A5, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A2, OUTPUT);
}
void flash(int x,int y) {
int state1=HIGH;
int state2=LOW;
for(int n=0;n<2;n++) {
if(n==0) {
state1=HIGH;
state2=LOW;
} else {
state1=LOW;
state2=LOW;
}
if(x==0) digitalWrite(8, state1); else digitalWrite(8, state2);
if(x==1) digitalWrite(9, state1); else digitalWrite(9, state2);
if(x==2) digitalWrite(10, state1); else digitalWrite(10, state2);
if(x==3) digitalWrite(11, state1); else digitalWrite(11, state2);
if(x==4) digitalWrite(A5, state1); else digitalWrite(A5, state2);
if(x==5) digitalWrite(A4, state1); else digitalWrite(A4, state2);
if(x==6) digitalWrite(A3, state1); else digitalWrite(A3, state2);
if(x==7) digitalWrite(A2, state1); else digitalWrite(A2, state2);
if(y==0) digitalWrite(12, state1); else digitalWrite(12, state2);
if(y==1) digitalWrite(13, state1); else digitalWrite(13, state2);
if(y==2) digitalWrite(2, state1); else digitalWrite(2, state2);
if(y==3) digitalWrite(3, state1); else digitalWrite(3, state2);
if(y==4) digitalWrite(4, state1); else digitalWrite(4, state2);
if(y==5) digitalWrite(5, state1); else digitalWrite(5, state2);
if(y==6) digitalWrite(6, state1); else digitalWrite(6, state2);
if(y==7) digitalWrite(7, state1); else digitalWrite(7, state2);
if(n==0) delay(50);
}
}
void loop()
{
for(int x=0;x<8;x++) {
for(int y=0;y<8;y++) {
flash(x,y);
}
}
}
The pins are connected as follows:
Arduino Matrix 2 K6 3 K5 4 K4 5 K3 6 K2 7 K1 8 K8 9 K7 10 A8 11 A7 12 A6 13 A5 A5 A4 A4 A3 A3 A2 A2 A1
A 2N3904 is used to switch the grounds in on the A pins. So the circuit looks like this:

